package com.dong.jdk8.functional;

import org.apache.log4j.Logger;

/**
 * Functional接口
 * 1、该注解只能标记在"有且仅有一个抽象方法"的接口上。
 * 2、JDK8接口中的静态方法和默认方法，都不算是抽象方法。
 * 3、接口默认继承java.lang.Object，所以如果接口显示声明覆盖了Object中方法，那么也不算抽象方法。
 * Created by jianyang206881 on 2017/9/25.
 */
@FunctionalInterface
public interface Functional {
    static final Logger LOGGER = Logger.getLogger(Functional.class);

    // 抽象方法
    void method();

    // java.lang.Object中的方法不是抽象方法
    public boolean equals(Object obj);

    // default不是抽象方法
    default void defaultMethod() {
        LOGGER.info("I'm default method");
    }

    // static不是抽象方法
    public static void staticMethod(){

    }
}
